 |
Generator d¼wiêku
|  |
Generator d¼wiêku AY-3-8910
Wiele 8-bitowych komputerów posiada specjalizowane uk³ady do generowania d¼wiêku. ZX Spectrum 48/+ posiada bardzo skromne mo¿liwo¶ci generowania d¼wiêku - tylko jednokana³ow± "piszcza³kê" nadaj±c± siê do wydawania pisków i pro¶ciutkich melodyjek. Od modelu ZX Spectrum 128k pocz±wszy montowany jest generator d¼wiêku oparty o uk³ad General Instruments AY-3-8912. Warto wiêc zbudowaæ uk³ad dla ZX Spectrum 48 (lub Timexa TC2048), który bêdzie programowo zgodny z generatorem w Spectrum 128k.
Mo¿liwo¶ci uk³adu AY:
- Pe³na kontrola programowa nad generowaniem d¼wiêku
- Trzy niezale¿nie programowane wyj¶cia analogowe
- Trzy przetworniki DAC 4-bitowe
- Generator obwiedni, generator szumów, mikser
- Dwa porty We/Wy ogólnego przeznaczenia (AY-3-8910) - nie u¿ywane w ZX Spectrum
- Pojedyncze zasilanie (+5V) i sygna³y w standardzie TTL
Schemat generatora:
Poni¿ej znajduje siê przyk³adowe rozwi±zanie generatora d¼wiêku wykorzystuj±cego uk³ad AY-3-8910. Poniewa¿ w ZX Spectrum 128k (i nastêpnych) zastosowano uk³ad AY-3-8912, mo¿na go te¿ z powodzeniem wykorzystaæ, pamiêtaj±c jednak, ¿e ma on inny uk³ad wyprowadzeñ (i mniejsz± obudowê).
Uk³ad podzielony jest na cztery bloki:
- zegar generuj±cy przebieg prostok±tny (taktowanie uk³adu)
- dekoder adresu (uaktywnia uk³ad tylko wtedy, gdy komputer siê do niego odwo³uje)
- generator d¼wiêku (chip AY)
- uk³ad rezystorów, by uzyskaæ efekt "stereo" ABC (¶rodkowy kana³ B)
Po prawej stronie znajduj± siê wyprowadzenia, które nale¿y pod³±czyæ do szyny krawêdziowej ZX Spectrum. Opis wyprowadzeñ sk³ada siê z numeru ¶cie¿ki (np. d19 oznacza 19 ¶cie¿kê na dolnej stronie z³±cza krawêdziowego, a np. g23 - 23 ¶cie¿ka na stronie górnej) oraz nazwy sygna³u. Sygna³y oznaczone gwiazdk± s± aktywne w stanie niskim (0V).
Sygna³y "Audio out" nale¿y doprowadziæ do wzmacniacza audio, masê we wtyczce po³±czyæ z mas± GND w uk³adzie.
Elementy C1 i R7 nale¿y tak dobraæ, ¿eby uzyskaæ czêstotliwo¶æ 1773,4 kHz (standard Spectrum). Je¶li czêstotliwo¶æ bêdzie inna, d¼wiêk bêdzie mia³ troszeczkê inn± barwê.
Uk³ad jest na tyle uniwersalny, ¿e mo¿na go pod³±czyæ do dowolnego komputera (nawet do PC), modyfikuj±c jedynie dekoder adresów, gdyby okaza³o siê, ¿e adresy 65533 i 49149 s± zajête.
Jeszcze jedna uwaga natury technicznej: pomiêdzy zasilanie a masê nale¿y wpi±æ kondensator tantalowy (np. 1uF), aby filtrowaæ ew. zak³ócenia na linii zasilaj±cej.
Wej¶cia steruj±ce uk³adu AY-3-8912 maj± nastêpuj±ce znaczenie:
Funkcja BDIR BC1
--------------------------
Chip wy³±czony 0 0
Odczyt 0 1
Zapis 1 0
Zapamiêtaj adres 1 1
Na poni¿szym schemacie wej¶cie BC2 zosta³o pod³±czone do logicznej jedynki (+5V).
Schemat generatora d¼wiêku dla ZX Spectrum 48k
Uk³ad wyprowadzeñ uk³adu scalonego AY-3-8910 w obudowie DIL40
Uk³ad wyprowadzeñ uk³adu scalonego AY-3-8912 w obudowie DIL28
Programowanie:
Dostêp do uk³adu jest mo¿liwy poprzez dwa porty we/wy ZX Spectrum: 65533 i 49149. Do portu 65533 wysy³a siê numer rejestru, a do 49149 warto¶æ, któr± chcemy do wybranego rejestru wpisaæ.
Opis rejestrów uk³adu AY:
rejestr Funkcja Zakres
0 Dok³adna wysoko¶æ tonu w kanale A 8-bit (0-255)
1 Zgrubna wysoko¶æ tonu w kanale A 4-bit (0-15)
2 Dok³adna wysoko¶æ tonu w kanale B 8-bit (0-255)
3 Zgrubna wysoko¶æ tonu w kanale B 4-bit (0-15)
4 Dok³adna wysoko¶æ tonu w kanale C 8-bit (0-255)
5 Zgrubna wysoko¶æ tonu w kanale C 4-bit (0-15)
6 "Wysoko¶æ" szumu 5-bit (0-31)
7 Rejestr steruj±cy / mikser 8-bit (see below)
8 G³o¶no¶æ w kanale A 4-bit (0-15, see below)
9 G³o¶no¶æ w kanale B 4-bit (0-15, see below)
10 G³o¶no¶æ w kanale C 4-bit (0-15, see below)
11 Dok³adny czas obwiedni 8-bit (0-255)
12 Zgrubny czas obwiedni 8-bit (0-255)
13 Typ obwiedni i jej wyzwolenie 4-bit (0-15)
14 I/O port A 8-bit (0-255)
15 I/O port B 8-bit (0-255) (tylko w AY-3-8910)
Uwagi:
- AY-3-8912 nie posiada rejestru 15 (i portu we/wy "B" ogólnego przeznaczenia)
- Rejestry 8, 9 i 10 s± 4-bitowe, ale je¶li 5-bit jest ustawiony, wtedy dany kana³ u¿ywa obwiedni zdefiniowanej w rejestrze 13 - g³o¶no¶æ jest wtedy ignorowana
- Rejestr steruj±cy (mixer) posiada bity:
- Bit 7 - I/O "B"
- Bit 6 - I/O "A"
- Bit 5 - Szum: kana³ C
- Bit 4 - Szum: kana³ B
- Bit 3 - Szum: kana³ A
- Bit 2 - Ton: kana³ C
- Bit 1 - Ton: kana³ B
- Bit 0 - Ton: kana³ A
Obwiednie wybierane w rejestrze 13:
0 \__________ pojedyncze opadanie i wy³±czenie
4 /|_________ pojedynczy narost i wy³±czenie
8 \|\|\|\|\|\ powtarzaj±ce siê opadanie)
9 \__________ pojedyncze opadanie i wy³±czenie
10 \/\/\/\/\/\ powtarzaj±ce siê opadanie i narost
_________
11 \| pojedyncze opadanie i utrzymanie
12 /|/|/|/|/|/ powtarzaj±ce siê narosty
__________
13 / pojedynczy narost i utrzymanie
14 /\/\/\/\/\/ powtarzaj±ce siê narost i opadanie
15 /|_________ pojedynczy narost i wy³±czenie
Powrót do strony g³ównej...